10764. Деление нацело на 5

 

На столе лежит n камней. За 1 монету можно сделать одну из следующих операций:

·        Забрать со стола один камень. Вы не можете выполнить эту операцию, если на столе нет ни одного камня.

·        Положить на стол еще один камень.

 

Какое наименьшее количество монет надо потратить, чтобы число камней на столе делилось нацело на 5?

Обратите внимание, что 0 делится на любое число, а значит, если на столе остается 0 камней, то условие задачи выполнено.

 

Вход. Одно целое число n (0 ≤ n ≤ 109) – начальное количество камней на столе.

 

Выход. Выведите единственное число – минимальное количество монет которое нужно потратить, чтобы число камней на столе делилось нацело на 5.

 

Пример входа 1

Пример выхода 1

0

0

 

 

Пример входа 2

Пример выхода 2

1

1

 

 

Пример входа 3

Пример выхода 3

3

2

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Для заданного числа n следует найти ближайшее число, кратное 5. Для этого сначала найдем остаток от деления n на 5, положив n = n / 5. Теперь ближайшим числом, кратным 5, будет min(n, 5 – n).

 

Реализация алгоритма

Читаем входное значение n. Вычисляем его по модулю 5.

 

scanf("%d", &n);

n = n % 5;

 

Находим min(n, 5 – n).

 

if (5 - n < n) n = 5 - n;

 

Выводим ответ.

 

printf("%d\n", n);